package mpo;

import java.util.List;

import org.ansj.domain.Term;
import org.ansj.splitWord.analysis.NlpAnalysis;
import org.ansj.splitWord.analysis.ToAnalysis;

import us.codecraft.webmagic.Spider;
import httl.web.jfinal.HttlRenderFactory;
import mpo.controller.ConfigController;
import mpo.controller.NewsController;
import mpo.core.SimilarCalcuate;
import mpo.model.News;
import mpo.serve.presistence.Presistence;
import mpo.serve.processer.SinaProcesser;

import com.jfinal.config.Constants;
import com.jfinal.config.Handlers;
import com.jfinal.config.Interceptors;
import com.jfinal.config.JFinalConfig;
import com.jfinal.config.Plugins;
import com.jfinal.config.Routes;
import com.jfinal.core.JFinal;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.c3p0.C3p0Plugin;

public class AppConfig extends JFinalConfig {

	/**
	 * 配置常量
	 */
	public void configConstant(Constants me) {
		// 加载少量必要配置，随后可用getProperty(...)获取值
		loadPropertyFile("config.properties");
		me.setMainRenderFactory(new HttlRenderFactory());
		me.setDevMode(getPropertyToBoolean("devMode",
				Boolean.parseBoolean(getProperty("devMode"))));
	}

	/**
	 * 配置路由
	 */
	public void configRoute(Routes me) {
		me.add("/", NewsController.class);
		me.add("/config", ConfigController.class);
	}

	/**
	 * 配置插件
	 */
	public void configPlugin(Plugins me) {
		// 配置C3p0数据库连接池插件
		C3p0Plugin c3p0Plugin = new C3p0Plugin(getProperty("jdbcUrl"),
				getProperty("user"), getProperty("password").trim());
		me.add(c3p0Plugin);

		// 配置ActiveRecord插件
		ActiveRecordPlugin arp = new ActiveRecordPlugin(c3p0Plugin);
		arp.setShowSql(Boolean.parseBoolean(getProperty("devMode")));

		me.add(arp);

		arp.addMapping("news", "id", News.class);
	}

	/**
	 * 配置全局拦截器
	 */
	public void configInterceptor(Interceptors me) {

	}

	/**
	 * 配置处理器
	 */
	public void configHandler(Handlers me) {
		ContextPathHandler path = new ContextPathHandler("BASE_PATH");
		me.add(path);

	}

	public void afterJFinalStart() {
		
		List<News> news = News.dao.find("select * from news");
		
		// Spider.create(new SinaProcesser()).addPipeline(new
		// Presistence()).start();
		System.out.println("初始化NlpAnalysis");
		NlpAnalysis.parse("test");
		System.out.println("初始化NlpAnalysis完成");
	}

	/**
	 * 建议使用 JFinal 手册推荐的方式启动项目 运行此 main
	 * 方法可以启动项目，此main方法可以放置在任意的Class类定义中，不一定要放于此
	 */
	public static void main(String[] args) {
		// JFinal.start("src/main/webapp", 80, "/", 5);

		System.out.println(SimilarCalcuate.cosSimilarityByString(
				"　　第二十一次委员长会议"
				, "　　新华网北京4月14日电十二届全国人大常委会第二十一次委员长会议"));

		System.out.println(SimilarCalcuate.cosSimilarityByString(
				"　　新华网北京4月14日电十二届全国人大常委会第二十一次委员长会议14日上午在人民大会堂举行。会议决定，十二届全国人大常委会第八次会议4月21日至24日在北京举行。张德江委员长主持会议。委员长会议建议，十二届全国人大常委会第八次会议继续审议环境保护法修订草案、预算法修正案草案；审议国务院关于提请审议航道法草案的议案；审议委员长会议关于提请审议刑法有关规定的解释草案的议案、关于提请审议刑事诉讼法有关规定的解释草案的议案；审议国务院关于提请审议批准《视听表演北京条约》的议案、关于提请审议批准《中华人民共和国和阿根廷共和国关于刑事司法协助的条约》的议案；审议国务院关于节能减排工作情况的报告；审议全国人大常委会代表资格审查委员会关于个别代表的代表资格的报告；审议有关任免案等。　　委员长会议审议通过了全国人大常委会2014年工作要点和立法、监督工作计划。　　委员长会议上，全国人大常委会副委员长兼秘书长王晨就常委会第八次会议议程草案、日程安排意见作了汇报。全国人大常委会有关副秘书长，全国人大法律委员会、财政经济委员会、外事委员会、环境与资源保护委员会和常委会法制工作委员会、代表资格审查委员会负责人就常委会第八次会议有关议程作了汇报。　　全国人大常委会副委员长李建国、王胜俊、陈昌智、严隽琪、沈跃跃、吉炳轩、张平、向巴平措、艾力更・依明巴海、万鄂湘、张宝文、陈竺出席会议。"
				, "　　新华网北京4月14日电十二届全国人大常委会第二十一次委员长会议　　新京报讯(记者金煜)环保部今日通报，昨(4月14日)起，我国京津冀及周边地区部分城市空气重度污染将持续到17日。北京是昨天区域内污染最重的城市。　　环保部相关负责人说，4月14日，京津冀及周边地区开展空气质量新标准监测的39个城市中，有4个城市出现重度污染，较13日减少9个，无严重污染城市。与13日相比，北京、廊坊、邢台3个城市空气质量仍维持重度污染；天津、石家庄、济南、保定、淄博等10个城市由重度污染转为中度或轻度污染，污染程度有所缓解。　　昨天，北京市为区域内污染最重城市，PM2.5日均值浓度为220微克/立方米，AQI值为270，空气质量属重度污染，主要污染物均为PM2.5。　　上述负责人介绍，截至4月15日10时，京津冀及周边39个城市中，张家口、潍坊、临沂等5个城市PM2.5小时平均浓度大于150微克/立方米，属重度污染，无严重污染城市。与14日同期比较，污染程度有所缓解，空气质量有所改善。北京市PM2.5小时平均浓度为109微克/立方米，空气质量为轻度污染。　　据环保部预测，明天(16日)大气扩散条件持续不利，河北北部以良至轻度污染为主，北京、天津和河北中部以中至重度污染为主，河北南部以轻至中度污染为主。17日，大气扩散条件略有好转，河北北部以良至轻度污染为主，京津冀中南部以轻至中度污染为主。(原标题：京津冀及周边空气重污染将持续到17日)（编辑：SN094）吉炳轩、张平、向巴平措、艾力更・依明巴海、万鄂湘、张宝文、陈竺出席会议"));

	}
}
